package com.zunipe.ftpe.util;

import org.fusesource.jansi.Ansi;

import java.text.SimpleDateFormat;

public class ZLog {
    public static void e(String tag, String msg, Object... args) {
        print(tag, Ansi.ansi().fg(Ansi.Color.RED).a("ERROR").reset(), msg, args);
    }

    public static void w(String tag, String msg, Object... args) {
        print(tag, Ansi.ansi().fg(Ansi.Color.YELLOW).a("WARNING").reset(), msg, args);
    }

    public static void i(String tag, String msg, Object... args) {
        print(tag, Ansi.ansi().fg(Ansi.Color.GREEN).a("INFO").reset(), msg, args);
    }

    public static void d(String tag, String msg, Object... args) {
        print(tag, Ansi.ansi().fg(Ansi.Color.CYAN).a("DEBUG").reset(),msg, args);
    }

    private static void print(String tag, Ansi level, String msg, Object... args) {
        String formatMsg = String.format(msg, args);
        System.out.printf("[%s] [%s] [%s] %s" + System.lineSeparator(), getTime(), level, tag, formatMsg);
    }

    private static String getTime() {
        SimpleDateFormat sdf = new SimpleDateFormat("yy-MM-dd HH:mm:ss");
        return sdf.format(System.currentTimeMillis());
    }
}
